04 处理器体系结构

处理器体系结构

本节简单的介绍处理器的工作方式

由于本章节比较接近底层,因此只大致的说明说了些什么内容

Y86-64指令集体系结构

Y86指令是不存在的,本书的作者受到IA32指令,也就是“x86”的启发,所假想出来的一种处理器体系结构
与 “x86” 相比,Y86指令集的数据类型、指令和寻址方式都要少一些,字节级编码也比较简单。但是它仍然足够完整,能够写一些简单的处理证书的程序,而设计一个Y86处理器要求我们面对许多处理器设计者同样面临的问题。

什么是指令集体系结构?

一个处理器支持的指令和指令的字节编码,称为指令集体系结构(ISA)

每条指令都会读取和修改处理器状态的某些部分,被称为程序员可见状态

程序员可见状态

Y86指令集有哪些?
指令如何编码?
如何使用操作数以及操作数如何编码?
状态码Stat有什么用?
以”.”开头的词有什么作用?
pushq %rsp的特殊性?

逻辑设计和硬件控制语言HCL

硬件控制语言HCL有什么用?
什么是逻辑门?
什么是组合电路?
如何使用HCL?
什么是“字”和“情况表达式”?如何用HCL表示?
什么是集合关系?如何用HCL表示?

寄存器和时钟

什么是时钟?有什么作用?
(额外)什么是触发器和锁存器?
什么是时钟寄存器?有什么作用?
时钟寄存器和随机访问存储器的区别?
硬件寄存器和程序寄存器的区别?

Y86-64的顺序(SEQ)实现

处理器顺序执行一条指令会经历哪些阶段?

取指、译码、执行、访存、回写

每个阶段都处理什么问题?

  • 取指:获取指令
  • 译码:获取指令中的寄存器的值
  • 执行:执行各个逻辑单元
  • 访存:访存内存,读写内存
  • 回写:写入寄存器

具体的各种案例(OPq,rrmovq,irmovq,pushq,popq,jxx,call,ret)

时钟控制下周期执行的处理器上如何实现顺序?

硬件下各位阶段是同时进行的
但是每个阶段产生的结果会作为信号提供给后续阶段使用
直到所有阶段达到一个稳定的状态
时钟上升,所有的结果被写入中
因此,一个时钟周期实现一条指令

哪些结果需要被时钟控制?

需要被后续指令用到的结果:
程序计数器,条件码,寄存器,内存

各阶段如何用HCL表示?
SEQ的缺陷?

流水线的通用原理

如何理解流水线?流水线的优点?
如何从硬件上实现流水线?
流水线的局限?

什么是反馈?

当前指令的结果被后续指令使用

流水线反馈的难题?

Y86-64的流水线实现

本文标题:04 处理器体系结构

文章作者:Sun

发布时间:2019年05月13日 - 17:05

最后更新:2019年05月16日 - 18:05

原始链接:https://sunyi720.github.io/2019/05/13/系统原理/04 处理器体系结构/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。